package 矩阵

/*
https://leetcode.cn/problems/set-matrix-zeroes/?envType=study-plan-v2&envId=top-100-liked

73. 矩阵置零
给定一个 m x n 的矩阵，如果一个元素为 0 ，则将其所在行和列的所有元素都设为 0 。
请使用 原地 算法。

给定一个m*n的矩阵，如果一个元素为0， 则将其所在行和列的所有元素都设为0
请使用 原地算法。

示例 1：
输入：matrix = [

	[1,1,1],
	[1,0,1],
	[1,1,1]

]
输出：[

	[1,0,1],
	[0,0,0],
	[1,0,1]

]

示例 2：
输入：matrix = [

	[0,1,2,0],
	[3,4,5,2],
	[1,3,1,5]

]
输出：[

	[0,0,0,0],
	[0,4,5,0],
	[0,3,1,0]

]
*/
func setZeroes(matrix [][]int) {
	row := make([]bool, len(matrix))
	col := make([]bool, len(matrix[0]))

	for i := 0; i < len(row); i++ {
		for j := 0; j < len(col); j++ {
			if matrix[i][j] == 0 {
				row[i] = true
				col[j] = true
			}
		}
	}

	for i := 0; i < len(row); i++ {
		for j := 0; j < len(col); j++ {
			if row[i] || col[j] {
				matrix[i][j] = 0
			}
		}
	}
}
